package cn.com.shopec.erp.stock.dao;

import java.util.List;

import cn.com.shopec.erp.common.orm.IHibernateEntityDao;
import cn.com.shopec.erp.stock.entity.ProductBarCode;
import cn.com.shopec.erp.stock.entity.StockOutProduct;
import cn.com.shopec.erp.stock.vo.StockOutProductVo;

/**
 * @ClassName: IStockOutProductDao
 * @Description: 出库商品Dao接口
 * @author: zengxuezhou
 * @date: 2016年11月28日 下午2:20:40
 */
public interface IStockOutProductDao extends IHibernateEntityDao<StockOutProduct> {
	
	/**
	 * 根据出库编号删除库单内的商品
	 * @param stockOutNo
	 */
	void removeProductByStockOutNo(String stockOutNo);

	/**
	 * 根据出库编号删除库单内商品
	 * @param stockOutNo
	 * @return
	 */
	boolean removeForUpdate(String stockOutNo);

	/**
	 * 查询指定StockNo的产品的总数量
	 * @param stockNo
	 * @return
	 */
	int getProductsCountByStockNo(String stockNo);
	
	/**
	 * 分页查询指定StockNo的产品
	 * @param stockNo
	 * @param pageCount
	 * @param pageSize
	 * @return
	 */
	List<StockOutProductVo> getProductsListByStockNo(String stockNo, int pageCount, int pageSize);

	/**
	 * 设置条形码已上传
	 * @param id
	 * @param state
	 */
	void setProductCodeIsImport(String id, int state);

	/**
	 * 查询有效的条形码信息
	 * @param code 
	 * @return
	 */
	ProductBarCode getProductCodeBycode(String code);

	/**
	 * 设置条形码失效（订单退货用）
	 * @param id
	 * @param state 
	 */
	void setProductCodeIsNoEffective(String id, Integer state);
}
